import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    initLogin: true, // 初始化登录页面，防止重复跳转
    active: 0,
    loginData: null, // 登录数据缓存
  },
  mutations: {
    INIT_LOGIN_FALSE(state) {
      state.initLogin = false
      console.log(state)
    },
    INIT_LOGIN_TRUE(state) {
      state.initLogin = true
    },
    SAVE_TABBAR_STATUS(state, p) {
      state.active = p
      console.log(state)
    },
    // 保存登录数据
    SAVE_LOGIN_DATA(state, loginData) {
      state.loginData = loginData
      // 同时保存到localStorage作为持久化存储
      if (loginData) {
        localStorage.setItem('px_login_data', JSON.stringify(loginData))
      } else {
        localStorage.removeItem('px_login_data')
      }
    },
    // 从localStorage恢复登录数据
    RESTORE_LOGIN_DATA(state) {
      const loginDataStr = localStorage.getItem('px_login_data')
      if (loginDataStr) {
        try {
          state.loginData = JSON.parse(loginDataStr)
        } catch (e) {
          console.error('解析登录数据失败:', e)
          state.loginData = null
        }
      }
    }
  },
  actions: {
    // 保存登录数据
    saveLoginData({ commit }, loginData) {
      commit('SAVE_LOGIN_DATA', loginData)
    },
    // 恢复登录数据
    restoreLoginData({ commit }) {
      commit('RESTORE_LOGIN_DATA')
    },
    // 清除登录数据
    clearLoginData({ commit }) {
      commit('SAVE_LOGIN_DATA', null)
    }
  },
  modules: {}
})
